﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace HobSoft.SoccerBet2014.Domain.Core
{
    using Common.Queryable;
    using Models.Core;

    public interface IUniKeyReadWriteRepository<T> : IUniKeyReadRepository<T>, IUniKeyWriteRepository<T> where T : class, IModel
    {
    }

    public interface IUniKeyReadRepository<T> : IRepository where T : class, IModel
    {
        IList<T> GetMany(ISortExpression<T>[] sortExpression, params object[] keys);
        IList<T> GetMany(params object[] keys);
    }

    public interface IUniKeyWriteRepository<T> : IRepository where T : class, IModel
    {
        int DeleteMany(params object[] keys);
        int Update(Expression<Func<T, T>> updateExpression, params object[] keys);
    }
}
